In some programming environments, each application and/or framework may operate as part a single compact virtual machine (CVM) instance. However, when developing software in these environments, the Java machine only provides visibility into memory usage at a per CVM level. Thus, the programmer may be able to determine the amount of memory consumed/reserved for the CVM but not necessarily the amount of memory usage per application operating as part of the CVM. Additionally, the programming environment, in some cases, fails to provide insight into native memory consumption associated with the CVM. The lack of insight into the memory allocation/reservation at an application level often results in over allocation/reservation of memory resources to ensure each application has the necessary resources to perform the desired operations and can often make writing memory efficient code and detecting memory regressions across different software releases difficult. Additionally, detecting and correcting memory leaks may also be difficult.